﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;

namespace InicalizarExamenes
{
    class Program
    {
        public static SqlConnection conectarSQLServer()
        {
            string ConnStr = @"Data Source=(local)\sqlExpress;Initial Catalog=dacli;Integrated Security=True;MultipleActiveResultSets=True";
            SqlConnection MyConn = new SqlConnection(ConnStr);
            return MyConn;
        }
        public static void grabarExamen(string[,] datos, long examenes_categoria_id, SqlConnection conexion)
        {
            double divi = datos.Length / datos.GetLongLength(0);
            SqlCommand comando = new SqlCommand("Comando", conexion);
            SqlDataAdapter dataReader;

            int col = Convert.ToInt32(divi);
            for (int i = 0; i < datos.GetLongLength(0);++i )
            {
                string elemento = datos[i, 0];
                comando.CommandText = "INSERT INTO elementos_categoria(nombre,examenes_categoria_id,unico,orden,ancho)  VALUES(" +
                    "'" + elemento + "'," +
                    "" + examenes_categoria_id + "," +
                    "-1," +
                    "" + i + "," +
                    "" + 180 + "" +
                ");  SELECT SCOPE_IDENTITY()";
               long id = Convert.ToInt64(comando.ExecuteScalar());

                
                for (int j = 1; j < col; ++j) 
                {
                    if (datos[i, j] == "")
                        continue;
                    string opcion = datos[i, j];
                    comando.CommandText = "INSERT INTO opciones_elementos (nombre, elementos_categoria_id) VALUES ('" + opcion + "'," + id + ")";
                    comando.ExecuteNonQuery();                    
                }
            }
        }

        static void Main(string[] args)
        {
#region array orina 8 
            string[,] orinas = new string[,]{ 
                {"Color", "Amarillo", "Rojo","","","","",""},
                {"Aspecto", "Lig. Turbio", "Turbio","","","","",""},
                {"Densidad", "1005", "1003","","","","",""},
                {"Ph", "5", "7", "9","","","",""},
                {"Reaccion", "Acida", "Alcalina","","","","",""},
                {"Analisis Quimico","label","","","","","",""},
                {"Glucosa","Negativo","Positivo","","","","",""},
                {"Cetona","Negativo","Positivo","","","","",""},
                {"Urolbina","Negativo","Positivo","","","","",""},
                {"Hemoglobina","Negativo","Positivo","","","","",""},
                {"Proteinas","Negativo","Positivo","","","","",""},
                {"Nitritos","Negativo","Positivo","","","","",""},
                {"Analisis Microscopico","label","","","","","",""},
                {"Leucocitos","0-1xC","2-3xC","","","","",""},
                {"Hematies","0-1xC","2-3xC","","","","",""},
                {"Celulas Epetiliales","ABUNDANTES","ESCASAS","","","","",""},
                {"Bacterias","ABUNDANTES","ESCASAS","","","","",""},
                {"Cristales","URATOS AMORFOS ESCASOS","URATOS AMORFOS ABUNDANTES","","","","",""},
                {"Piocitos","","","","","","",""},
                {"Cilindros","","","","","","",""},
                {"Filamentos","","","","","","",""},
                {"Pigmentos Biliares","","","","","","",""},
                {"Observacion1","","","","","","",""},
                {"Observacion2","","","","","","",""},
            };
#endregion
            SqlConnection conexion = conectarSQLServer();
            conexion.Open();
            SqlCommand comando = new SqlCommand("Comando", conexion);

            comando.CommandText = "DELETE  FROM elementos_categoria; DBCC CHECKIDENT (elementos_categoria, reseed, 0)";
            comando.ExecuteNonQuery();

            SqlDataReader dataReader;
            comando.CommandText = "SELECT *FROM examenes_categoria";
            
            dataReader = comando.ExecuteReader();
            while (dataReader.Read())
            {
                string nombre = dataReader.GetString(dataReader.GetOrdinal("nombre"));
                long id = dataReader.GetInt64(dataReader.GetOrdinal("id"));
                Console.WriteLine(nombre);
                if (nombre.ToLower().Equals("orina"))
                {
                    grabarExamen(orinas, id,conexion);
                }                    
            }            
            Console.ReadKey();
        }
        
    }
}
